package com.dfe.backend.common.sax.scd;

import com.dfe.backend.common.bean.IedInfo;
import com.dfe.backend.common.bean.virtual.VirtualNode;
import com.dfe.backend.common.sax.scd.communication.Communication;
import com.dfe.backend.common.sax.scd.ied.ExtRef;
import com.dfe.backend.common.sax.scd.ied.Ied;
import lombok.Data;

import java.util.List;
import java.util.Map;

/**
 * @author LiChang(lclicht @ qq.com)
 * @version 1.0
 * @class ScdData
 * @since 2023-12-8 14:02
 */
@Data
public class ScdData {

    // SCD文件真实节点
    private List<Ied> iedList;
    private Communication communication;

    // IED名称与虚拟对象映射
    private Map<String, List<VirtualNode>> iedVirtualNodeMap;
    // IED名称列表
    private List<String> iedNameList;
    private List<IedInfo> iedInfoList;
    // IED名称与IED描述映射
    private Map<String, String> iedNameMap;

    // 全外部路径列表
    private List<ExtRef> allExtRefList;
    // APPID与名称映射，iedName + "." + accessPoint.getName() + "." + cbName + "." + lDevice.getInst()匹配关系
    private Map<String, String> appIdMap;
    // IED名称与对应关系映射
    private Map<String, List<ExtRef>> iedExtRefMap;
    // IED和数据集，cbName定位关系
    private Map<String, Map<String, String>> iedDataSetGseMap;
    private Map<String, Map<String, String>> iedDataSetSvMap;
    private Map<String, String> pathToDataSetMap;

    // Fcda路径匹配的Reference路径
    private Map<String, String> referencePathMap;

    // 真实端口与APPID映射
    private Map<String, String> realPortMap;

}

